<?php
	include_once('Querys.php');
	include_once('vo/Historia.php');
	include_once('TareaService.php');
	
	class HistoriaService extends Querys{
		
		var $tabla = "historias";
		
		/*--------------------------------------------------------------------------
		Devuelve las tareas que esten dentro de la historia que se le pasa como argumento
		--------------------------------------------------------------------------*/
		
		public function getByProyecto($id){
		
			$result = $this->consulta("SELECT ".$this->tabla.".* FROM ".$this->tabla." WHERE id_proyecto = $id ORDER BY prioridad");
			
			$historias = array();
			
			while($fila = $this->fetch($result)){
			
				$historia = $this->armarHistoria($fila);
				
				$historias[] = $historia;
			}
			
			return $historias;
		}
		
		public function getById($id){
		
			$result = $this->consulta("SELECT ".$this->tabla.".* FROM ".$this->tabla." WHERE $this->tabla.id = $id");
			
			$fila = $this->fetch($result);
			
			$historia = $this->armarHistoria($fila);
			
			return $historia;
		}
		
		public function update(Historia $historia){
			if($this->consulta("UPDATE ".$this->tabla." SET titulo = '".$historia->titulo."', descripcion = '".$historia->descripcion."', objetivos = '".$historia->objetivos."', prioridad = ".$historia->prioridad." WHERE id = ".$historia->id)){
				return $this->getById($historia->id);
			}
		}
		
		public function save(Historia $historia){
			if($this->consulta("INSERT INTO ".$this->tabla." VALUES (null, '".$historia->titulo."', '".$historia->descripcion."', '".$historia->objetivos."', ".$historia->id_proyecto.", ".$historia->prioridad.")")){
				return $this->getById(mysql_insert_id());
			}
		}
		
		public function changePrioridad($prioridad){
			$prioridad = str_replace("historia", "", $prioridad);
			$prioridad = explode(",", $prioridad);
			$pos = 1;
			foreach($prioridad as $item){
				$this->consulta("UPDATE ".$this->tabla." SET prioridad = $pos WHERE id = $item");
				$pos++;
			}
			return true;
		}
		
		private function armarHistoria($fila){
			$historia = new Historia();
			
			$historia->id = $fila["id"];
			$historia->titulo = $fila["titulo"];
			$historia->descripcion = $fila["descripcion"];
			$historia->objetivos = $fila["objetivos"];
			$historia->id_proyecto = $fila["id_proyecto"];
			$historia->prioridad = $fila["prioridad"];
			
			$service = new TareaService();
			$historia->tareas = $service->getByHistoria($fila["id"]);
			
			return $historia;
		}
		
	}
?>